package com.ruoyi.system.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.MbtiTestTypeMapper;
import com.ruoyi.system.domain.MbtiTestType;
import com.ruoyi.system.service.IMbtiTestTypeService;

/**
 * MBTI测试类型Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-01-21
 */
@Service
public class MbtiTestTypeServiceImpl implements IMbtiTestTypeService 
{
    @Autowired
    private MbtiTestTypeMapper mbtiTestTypeMapper;

    /**
     * 查询MBTI测试类型
     * 
     * @param testTypeId MBTI测试类型主键
     * @return MBTI测试类型
     */
    @Override
    public MbtiTestType selectMbtiTestTypeByTestTypeId(Long testTypeId)
    {
        return mbtiTestTypeMapper.selectMbtiTestTypeByTestTypeId(testTypeId);
    }

    /**
     * 查询MBTI测试类型列表
     * 
     * @param mbtiTestType MBTI测试类型
     * @return MBTI测试类型
     */
    @Override
    public List<MbtiTestType> selectMbtiTestTypeList(MbtiTestType mbtiTestType)
    {
        return mbtiTestTypeMapper.selectMbtiTestTypeList(mbtiTestType);
    }

    /**
     * 新增MBTI测试类型
     * 
     * @param mbtiTestType MBTI测试类型
     * @return 结果
     */
    @Override
    public int insertMbtiTestType(MbtiTestType mbtiTestType)
    {
        mbtiTestType.setCreateTime(DateUtils.getNowDate());
        return mbtiTestTypeMapper.insertMbtiTestType(mbtiTestType);
    }

    /**
     * 修改MBTI测试类型
     * 
     * @param mbtiTestType MBTI测试类型
     * @return 结果
     */
    @Override
    public int updateMbtiTestType(MbtiTestType mbtiTestType)
    {
        mbtiTestType.setUpdateTime(DateUtils.getNowDate());
        return mbtiTestTypeMapper.updateMbtiTestType(mbtiTestType);
    }

    /**
     * 批量删除MBTI测试类型
     * 
     * @param testTypeIds 需要删除的MBTI测试类型主键
     * @return 结果
     */
    @Override
    public int deleteMbtiTestTypeByTestTypeIds(Long[] testTypeIds)
    {
        return mbtiTestTypeMapper.deleteMbtiTestTypeByTestTypeIds(testTypeIds);
    }

    /**
     * 删除MBTI测试类型信息
     * 
     * @param testTypeId MBTI测试类型主键
     * @return 结果
     */
    @Override
    public int deleteMbtiTestTypeByTestTypeId(Long testTypeId)
    {
        return mbtiTestTypeMapper.deleteMbtiTestTypeByTestTypeId(testTypeId);
    }

    /**
     * 校验类型编码是否唯一
     * 
     * @param mbtiTestType 测试类型信息
     * @return 结果
     */
    @Override
    public boolean checkTypeCodeUnique(MbtiTestType mbtiTestType)
    {
        Long testTypeId = StringUtils.isNull(mbtiTestType.getTestTypeId()) ? -1L : mbtiTestType.getTestTypeId();
        MbtiTestType info = mbtiTestTypeMapper.checkTypeCodeUnique(mbtiTestType.getTypeCode());
        if (StringUtils.isNotNull(info) && info.getTestTypeId().longValue() != testTypeId.longValue())
        {
            return false;
        }
        return true;
    }
}
